Git 拉取数据
拉取远程数据
Git Fetch 命令
git fetch
做了些什么?
git fetch
完成了仅有的但是很重要的两步:
- 从远程仓库下载本地仓库中缺失的提交记录
- 更新本地的远程分支指针(如
o/master
)
git fetch
并不会改变你本地仓库的状态。它不会更新你的 master 分支,也不会修改你磁盘上的文件。(如下图所示,本地的 master 指针位置并没有变动,只是远程 master 分支变了而已)
理解这一点很重要,因为许多开发人员误以为执行了 git fetch
以后,他们本地仓库就与远程仓库同步了。它可能已经将进行这一操作所需的所有数据都下载了下来,但是并没有修改你本地的文件。git fetch
理解为单纯的下载操作。
Git Pull 拉取分支
git pull <远程库地址别名> <远程分支名>
# pull 命令
# pull 等于 fetch(抓取) + merge(合并) 两个操作的结合
git fetch <远程库地址别名> <远程分支名>
git merge <远程库地址别名> <远程分支名>
# 从远程库下载文件
git fetch LearnGitHub master
# 此时从远程库下载下来还看不到修改的内容
# 需要使用 切换到 LearnGitHub/master 才能查看,所以本质就是下载到一个分支上了
git checkout LearnGitHub/master
# 核对完之后再合并
git merge LearnGitHub/master